/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.jjsoft.celularessuc.gco.neg;

import com.jjsoft.celularessuc.gco.dao.GenericController;
import com.jjsoft.celularessuc.gco.mdl.Articulo;
import com.jjsoft.celularessuc.gco.mdl.Serie;
import com.jjsoft.celularessuc.gco.mdl.Sucursal;
import com.jjsoft.celularessuc.gco.util.configuraciones;
import java.util.List;

/**
 *
 * @author Johnny
 */
public class SerieManager {
    GenericController<Serie> controladorSerie = new GenericController<Serie>();
    public List<Serie> buscarSeries(Articulo articulo, Sucursal sucursal)
    {
        try{List<Serie> listaSeries = controladorSerie.findWhere(new Serie(),"idArticulo="+articulo.getCodigo()+" and idSucursal="+sucursal.getIdsucursal()+" and estado=0");
        
        return listaSeries;}
        catch(Exception ex)
        {
            return null;
        }
    }
    
    public boolean buscaSerie(Articulo articulo, Sucursal sucursal, String serie)
    {
        try{
           controladorSerie.findWhere(new Serie(),"idArticulo="+articulo.getCodigo()+" and idSucursal="+sucursal.getIdsucursal()+"and numSerie='"+serie +"' and estado=0").get(0);
        
        return true;}
        catch(Exception ex)
        {
            return false;
        }
    }
    public boolean buscaSerie(Articulo articulo, String serie)
    {
        try{
           controladorSerie.findWhere(new Serie(),"idArticulo="+articulo.getCodigo()+" and numSerie='"+serie+"'").get(0);
        
        return true;}
        catch(Exception ex)
        {
            return false;
        }
    }
  
    public List<Serie> buscaSerie(String serie)
    {
       
           return controladorSerie.findWhere(new Serie(),"numSerie='"+serie+"'");
        
        
    }
    public void devuelveSerie(Articulo articulo, Sucursal sucursal, String serie)
    {
        try{
           Serie ser=controladorSerie.findWhere(new Serie(),"idArticulo="+articulo.getCodigo()+" and idSucursal="+sucursal.getIdsucursal()+"and numSerie='"+serie +"' and estado=1").get(0);
           ser.setEstado(0);
           controladorSerie.edit(ser);
        }
        catch(Exception ex)
        {
            System.err.println(ex.getLocalizedMessage());
        }
    }
    public void quitaSerie(Articulo articulo, Sucursal sucursal, String serie)
    {
        try{
           Serie serieQuitar = controladorSerie.findWhere(new Serie(),"idArticulo="+articulo.getCodigo()+" and idSucursal="+sucursal.getIdsucursal()+"and numSerie='"+serie +"' and estado=0").get(0);
           serieQuitar.setEstado(1);
           controladorSerie.edit(serieQuitar);
        }
        catch(Exception ex)
        {
            System.err.println(ex.getLocalizedMessage());
        }
    }
    public void eliminaSerie(Articulo articulo, Sucursal sucursal, String serie)
    {
        try{
           Serie serieQuitar = controladorSerie.findWhere(new Serie(),"idArticulo="+articulo.getCodigo()+" and idSucursal="+sucursal.getIdsucursal()+"and numSerie='"+serie +"' and estado=0").get(0);
           controladorSerie.destroy(serieQuitar, serieQuitar.getIdserie());
        }
        catch(Exception ex)
        {
            System.err.println(ex.getLocalizedMessage());
        }
    }
    
    public void CambiaSerie(Articulo articulo,Sucursal origen, Sucursal destino, String serie)
    {
        try{
           Serie serieCambiar = controladorSerie.findWhere(new Serie(),"idArticulo="+articulo.getCodigo()+" and idSucursal="+origen.getIdsucursal()+"and numSerie='"+serie +"' and estado=0").get(0);
           serieCambiar.setIdSucursal(destino);
           controladorSerie.edit(serieCambiar);
        }
        catch(Exception ex)
        {
            System.err.println(ex.getLocalizedMessage());
        }
    }
    
    public boolean tieneSerie(Articulo articulo)
    {
        return controladorSerie.getCount(new Serie(), "idArticulo = "+articulo.getCodigo())>0;
    }
    public void registraSerie(Serie serie)
    {
        controladorSerie.create(serie);
    }
}
